package com.tansun.easycare.rule.common.service;

import java.util.List;
import java.util.Map;

import com.tansun.easycare.rule.common.rulebasebean.Fact;
import com.tansun.easycare.rule.referencedata.entity.RuleReferenceData;
import com.tansun.easycare.rule.rulegroup.service.RuleParseDrl;
import com.tansun.easycare.rule.rulemange.entity.RuleManage;
import com.tansun.easycare.rule.ruletest.model.TestDataModeVO;

public interface RuleDrlParseService {

    /**
     * 获取DRL文件变量
     */
    TestDataModeVO getDataMode(String drlContent, String projectCode) throws Exception;

    /**
     * 获取关联数据
     * @param ruleManage
     * @param facts
     * @param ruleRefMap
     * @throws Exception
     */
    public void collectReferenceData(RuleManage ruleManage, List<Fact> facts, Map<String, RuleReferenceData> ruleRefMap) throws Exception;
    
    /**
     * 获取关联数据，解析函数
     * @param ruleManage
     * @param facts
     * @param ruleRefMap
     * @throws Exception
     */
    public void collectReferenceData(RuleManage ruleManage, String funcDrlContent, Map<String, RuleReferenceData> ruleRefMap) throws Exception;
    
    public RuleParseDrl getParseObj(String projectCode);
}
